什麼是建構子Constructor?簡單來說就是建立類別物件的方法。
它是一個類別中的功能,在建立時建構子的名稱要和類別(class)同名,宣告方法如下:
// [modifier] constructor_name ([arguments]){...}
public class Goods{
public Goods(){ // constructor
}
}
在呼叫建構子時需要使用new關鍵字,來生成物件,同時會初始化
Test test = new Test();
這邊就會結合一下前兩篇提到的overloading,多載指的就是可以有很多個同樣名字的方法,各自去接不同的參數。這邊要先了解以下兩種this的差異:
當傳入的參數有int和double就會呼叫到第一個建構子,如果只有傳入int則是呼叫第二個,這時程式會再呼叫第一個建構子並把第二個參數填入0.0,剩下兩個情況也是一樣,如果少哪個參數就自動填入再呼叫第一個建構子。看起來很複雜其實非常簡單也很方便~
public class Goods {
public int gno;
public double gprice;
public Goods (int gno, double gprice) {
this.gno = gno;
this.gprice = gprice;
}
public Goods (int gno) {
this(gno, 0.0); // 呼叫 public Goods (int gno, double gprice) {}
}
public Goods (double gprice) {
this(0, gprice); // 呼叫 public Goods (int gno, double gprice) {}
}
public Goods () {
this(0, 0.0); // 呼叫 public Goods (int gno, double gprice) {}
}
}